<RegexElements>

	<Group _name="Character Escapes">
		<Element _name = "\a" _description="Matches a bell (alarm) \u0007.">\a</Element>
		<Element _name = "\b" _description="Matches a backspace \u0008 if in a [] character class.">\b</Element>
		<Element _name = "\t" _description="Matches a tab \u0009.">\t</Element>
		<Element _name = "\r" _description="Matches a carriage return \u000D.">\r</Element>
		<Element _name = "\v" _description="Matches a vertical tab \u000B.">\v</Element>
		<Element _name = "\f" _description="Matches a form feed \u000C.">\f</Element>
		<Element _name = "\n" _description="Matches a new line \u000A.">\n</Element>
		<Element _name = "\e" _description="Matches an escape \u001B.">\e</Element>
		<Element _name = "\040" _description=
"Matches an ASCII character as octal (up to three digits);
numbers with no leading zero are backreferences if they have 
only one digit or if they correspond to a capturing group number. 
(For more information, see Backreferences.) 
For example, the character \040 represents a space.">\040</Element>
		<Element _name = "\x20" _description="Matches an ASCII character using hexadecimal representation
(exactly two digits).">\x20</Element>
		<Element _name = "\cC" _description="Matches an ASCII control character;
for example, \cC is control-C.">\cC</Element>
		<Element _name = "\u0020" _description="Matches a Unicode character using hexadecimal representation
(exactly four digits).">\u0020</Element>
	</Group>
	
	<Group _name="Substitutions">
		<Element _name = "$number" _description="Substitutes the last substring matched by group number 'number' (decimal).">$number</Element>
		<Element _name = "${name}" _description="Substitutes the last substring matched by a (?&lt;name&gt;) group.">${name}</Element>
		<Element _name = "$$" _description="Substitutes a single '$' literal.">$$</Element>
		<Element _name = "$&amp;" _description="Substitutes a copy of the entire match itself.">$&amp;</Element>
		<Element _name = "$`" _description="Substitutes all the text of the input string before the match.">$`</Element>
		<Element _name = "$'" _description="Substitutes all the text of the input string after the match.">$'</Element>
		<Element _name = "$+" _description="Substitutes the last group captured.">$+</Element>
		<Element _name = "$_" _description="Substitutes the entire input string.">$_</Element>
	</Group>
	
	<Group _name="Character Classes">
		<Element _name = "[character_group]" _description="Positive character group.
Matches any character in the specified character group.">[]</Element>
		<Element _name = "[^character_group]" _description="Negative character group.
Matches any character not in the specified character group.">[^]</Element>
		<Element _name = "[firstCharacter-lastCharacter]" _description="Character range.
Matches any character in a range of characters.">[-]</Element>
		<Element _name = "." _description="The period character.
Matches any character except \n. 
If modified by the Singleline option, a period character matches any character.">.</Element>
		<Element _name = "\p{name}" _description=
"Matches any character in the Unicode general category
or named block specified by name (for example, Ll, Nd, Z, IsGreek, and IsBoxDrawing).">\p{}</Element>
		<Element _name = "\P{name}" _description=
"Matches any character not in Unicode general category 
or named block specified in name."></Element>
		<Element _name = "\w" _description="Matches any word character.">\w</Element>
		<Element _name = "\W" _description="Matches any nonword character.">\W</Element>
		<Element _name = "\s" _description="Matches any white-space character.">\s</Element>
		<Element _name = "\S" _description="Matches any non-white-space character.">\S</Element>
		<Element _name = "\d" _description="Matches any digit character.">\d</Element>
		<Element _name = "\D" _description="Matches any nondigit character.">\D</Element>
	</Group>
	
	<Group _name="Atomic Zero-Width Assertions">
		<Element _name = "^" _description=
"Specifies that the match must occur at the beginning of 
the string or the beginning of the line.">^</Element>
		<Element _name = "$" _description=
"Specifies that the match must occur at the end of the 
string, before \n at the end of the string, or at the 
end of the line.">$</Element>
		<Element _name = "\A" _description=
"Specifies that the match must occur at the beginning of 
the string (ignores the Multiline option).">\A</Element>
		<Element _name = "\Z" _description=
"Specifies that the match must occur at the end of the 
string or before \n at the end of the string (ignores 
the Multiline option).">\Z</Element>
		<Element _name = "\z" _description=
"Specifies that the match must occur at the end of the 
string (ignores the Multiline option).">\z</Element>
		<Element _name = "\G" _description=
"Specifies that the match must occur at the point where 
the previous match ended. When used with Match.NextMatch(), 
this ensures that matches are all contiguous.">\G</Element>
		<Element _name = "\b" _description=
"Specifies that the match must occur on a boundary 
between \w (alphanumeric) and \W (nonalphanumeric) characters. 
The match must occur on word boundaries (that is, at the first 
or last characters in words separated by any nonalphanumeric 
characters). The match can also occur on a word boundary at 
the end of the string.">\b</Element>
		<Element _name = "\B" _description= "Specifies that the match must not occur on a \b boundary.">\B</Element>
	</Group>
	
	<Group _name="Quantifiers">
		<Element _name = "*" _description=
"Specifies zero or more matches; 
for example, \w* or (abc)*. Equivalent to {0,}.">*</Element>
		<Element _name = "+" _description=
"Specifies one or more matches; 
for example, \w+ or (abc)+. Equivalent to {1,}.">+</Element>
		<Element _name = "?" _description=
"Specifies zero or one matches; 
for example, \w? or (abc)?. Equivalent to {0,1}.">?</Element>
		<Element _name = "{n}" _description=
"Specifies exactly n matches; 
for example, (pizza){2}.">{}</Element>
		<Element _name = "{n,}" _description=
"Specifies at least n matches;
for example, (abc){2,}.">{,}</Element>
		<Element _name = "{n,m}" _description="Specifies at least n, but no more than m, matches.">{,}</Element>
		<Element _name = "*?" _description=
"Specifies the first match that consumes as few repeats 
as possible (equivalent to lazy *).">*?</Element>
		<Element _name = "+?" _description=
"Specifies as few repeats as possible, but at least one 
(equivalent to lazy +).">+?</Element>
		<Element _name = "??" _description="Specifies zero repeats if possible, or one (lazy ?).">??</Element>
		<Element _name = "{n}?" _description="Equivalent to {n} (lazy {n}).">{}?</Element>
		<Element _name = "{n,}?" _description=
"Specifies as few repeats as possible, 
but at least n (lazy {n,}).">{,}?</Element>
		<Element _name = "{n,m}?" _description=
"Specifies as few repeats as possible 
between n and m (lazy {n,m}).">{,}?</Element>
	</Group>
	
	<Group _name="Grouping Constructs">
		<Element _name = "(subexpression)" _description=
"Captures the matched subexpression (or noncapturing group; 
for more information, see the ExplicitCapture option in 
Regular Expression Options). Captures using () are numbered 
automatically based on the order of the opening parenthesis, 
starting from one. ">()</Element>
		<Element _name = "(?&lt;name&gt; subexpression)" _description=
"Captures the matched subexpression into a group name or 
number name. The string used for name must not contain 
any punctuation and cannot begin with a number. ">(?&lt;&gt;)</Element>
		<Element _name = "(?&lt;name1-name2&gt; subexpression)" _description=
"Deletes the definition of the previously defined group name2 
and stores in group name1 the interval between the previously 
defined name2 group and the current group.">(?&lt;-&gt;)</Element>
		<Element _name = "(?: subexpression)" _description=
"Noncapturing group. 
Does not capture the substring matched by the subexpression.">(?:)</Element>
		<Element _name = "(?imnsx-imnsx: subexpression)" _description=
"Applies or disables the specified options within the subexpression.">(?-:)</Element>
		<Element _name = "(?= subexpression)" _description=
"Zero-width positive lookahead assertion.
Continues match only if the subexpression matches at this 
position on the right.">(?= )</Element>
		<Element _name = "(?! subexpression)" _description=
"Zero-width negative lookahead assertion.
Continues match only if the subexpression does not match
at this position on the right. 
For example, \b(?!un)\w+\b matches words that do not begin with un.">(?! )</Element>
		<Element _name = "(?&lt;= subexpression)" _description=
"Zero-width positive lookbehind assertion.
Continues match only if the subexpression matches at this
position on the left. 
For example, (?&lt;=19)99 matches instances of 99 that follow 19.
This construct does not backtrack.">(?&lt;= )</Element>
		<Element _name = "(?&lt;! subexpression)" _description=
"Zero-width negative lookbehind assertion.
Continues match only if the subexpression does not 
match at the position on the left.">(?&lt;! )</Element>
		<Element _name = "(?&gt; subexpression)" _description=
"Nonbacktracking subexpression (also known as a 'greedy' subexpression.)
The subexpression is fully matched once, and then does not participate 
piecemeal in backtracking. (That is, the subexpression matches only strings
that would be matched by the subexpression alone.)">(?&gt; )</Element>
	</Group>
	
	<Group _name="Backreference Constructs">
		<Element _name = "\number" _description=
"Backreference. 
For example, (\w)\1 finds doubled word characters.">\</Element>
		<Element _name = "\k&lt;name&gt;" _description=
"Named backreference. 
For example, (?&lt;char&gt;\w)\k&lt;char&gt; finds doubled word characters. 
The expression (?&lt;43&gt;\w)\43 does the same. You can use single quotes
 instead of angle brackets; for example, \k'char'.">\k</Element>
	</Group>
	
	<Group _name="Alternation Constructs">
		<Element _name = "|" _description=
"Matches any one of the terms separated by the | (vertical bar) character; 
for example, cat|dog|tiger. The leftmost successful match wins.">|</Element>
		<Element _name = "(?(expression)yes|no)" _description="Matches the 'yes' part if the expression matches at this point; otherwise, matches the 'no' part.">(?()|)</Element>
		<Element _name = "(?(name)yes|no)" _description=
"Matches the 'yes' part if the named capture string has a match; 
otherwise, matches the 'no' part. The 'no' part can be omitted.
If the given name does not correspond to the name or number of a 
capturing group used in this expression, the alternation construct 
is interpreted as an expression test.">(?()|)</Element>
	</Group>
	
	<Group _name="Miscellaneous Constructs">
		<Element _name = "(?imnsx-imnsx)" _description=
"Sets or disables options such as case insensitivity to be
turned on or off in the middle of a pattern.">(?-)</Element>
		<Element _name = "(?# )" _description=
"Inline comment inserted within a regular expression. 
The comment terminates at the first closing parenthesis character.">(?# )</Element>
		<Element _name = "# [to end of line]" _description=
"X-mode comment. The comment begins at an unescaped # and 
continues to the end of the line."># </Element>
	</Group>
	
</RegexElements>
